import React from "react";
import {Route,Redirect} from 'react-router-dom'


//读数据 得真假， 返回不同的Route指向User|login

export default class Auth extends React.Component{

  state={
    hasSendAuth:false,//是否发送过介权请求
    auth:false,//介权是否通过
    data:{}//预载数据
  };

  async componentDidMount(){
    let res = await fetch('/data/user.json');
    let data= await res.json();
    console.log('数据回来了',data);
    this.setState({
      auth: data.auth,
      hasSendAuth:false,
      data:data.data
    })
  }

  render(){
    // console.log('渲染了',this.props)  //包含了path,component的一个传入
    let {component:Component,...rest} = this.props;//目标组件
    if (!this.state.hasSendAuth) return null;

    return <Route {...rest} render={props=>(//...props 目标组件需要用到的路由信息
      this.state.auth ?
        <Component {...props} data={this.state.data} /> :// 数据预载
        <Redirect to="/login"/>
    )}/>

  }
}